1. Field of Invention
Embodiments of the present invention relate to techniques for selecting a data path over which to exchange information between a client device and a storage system. More specifically, embodiments of the invention relate to processes and systems for making a selection between a first data path and a second data path extending between the client device and the storage system, in which the first data path passes through a file system server so that the client device exchanges the information with the storage system using a file system interface for the storage system, and in which the second data path does not pass through the file system server.
2. Discussion of Related Art
In some conventional computer configurations, a data storage system is employed to provide a centralized storage point for data which may be written to or read from by one or more computers including, for example, clients and servers (referred to collectively as clients) coupled to the storage system. These conventional data storage systems may be accessed in a number of ways. In one implementation, a file system interface is provided for the data storage system, and as the one or more clients exchanges data with the storage system, the file system determines where the data should be written to or read from. This is often referred to as a network-attached storage (NAS) system wherein the file system interface enables data on the storage system to be shared by the clients.
A file system interface may be provided via a server that is separate from the data storage system. This implementation removes the processing associated with the file system functionality from the data storage system. In a computer configuration according to this implementation, a computer seeking to exchange data with the data storage system will instead exchange data with the file system server, and the file system server will use its knowledge of the structure and format of the data storage system to write the data to the data storage system or read the data from the data storage system.
In some conventional networks operating according to the latter technique discussed above, it was appreciated that transferring the data from the storage system to the file system server and from the file system server to the requesting client can result in an inefficient extra step in the exchange for some transactions. Some NAS computer configurations therefore used a third technique. In this third implementation, a computer seeking to exchange small amounts of data (e.g., amounts of data below a specified threshold amount) would exchange the data through the file system server over a first data path in the conventional manner, but for large amounts of data (e.g., amounts of data above the specified threshold amount) the client would interact directly with the data storage system over a second data path that does not include the file system server. For large amounts of data, then, a client would request from the file system server information (e.g., metadata) about where the requested data is stored on the storage system, and then would use this information to interact with the data storage system directly to retrieve the data. An illustrative system which operates according to this technique is the Celerra Multi-Path File System (MPFS) (also known as the HighRoad system) available from EMC Corporation of Hopkinton, Mass.
A conventional computer system implementing the third technique is shown in FIG. 1. A client computer 102 is shown in a computer system 100 along with a file system server 104 and a data storage system 106. The client computer 102 is connected to the file system server 104 and to the data storage system 106, and the file system server 104 is connected to the data storage system 106. Computer software is installed on the client computer 102 having instructions on how to exchange data between the client computer 102 and the data storage system 106, and the computer software is configured by an administrator with a threshold size (e.g., 64 kilobytes). This threshold is used by the computer 102 (i.e., by the computer software executing on the computer 102) when determining how to exchange data between the client computer 102 and the data storage system 106. For example, if a computer 102 seeks to write 32 KB of data to a file stored on the data storage system 106, then the computer 102 will send the 32 KB of data to the file system server 104 and the file system server 104 will write the 32 KB of data to the appropriate location in the data storage system 106 (i.e., the location of the file in the data storage system 106). If, however, the computer 102 seeks to write 128 KB of data to a file stored on the data storage system 106, then the computer 102 will receive from the file system server 104 metadata specifying the location in the data storage system 106 of the data blocks that make up the file, and then will write the 128 KB of data directly to the data storage system 106 in the location(s) specified by the file system server 104.
It should be appreciated that the diagram of FIG. 1 is merely a simple, conceptual representation of the types of systems which may be implemented in accordance with the third technique. In the diagram, while one of each element (e.g., client computer, file system server, data storage system) is shown, in some implementations there may be a plurality of client computers, a plurality of file system servers, and/or a plurality of storage systems. Additionally, while the data paths between the elements of the network are shown in FIG. 1 as direct connections, the data paths may be implemented in any suitable manner, such as in a computer network comprising a plurality of network links and networking devices such as routers and switches. Each of the three data paths shown in FIG. 1 may be implemented as a separate computer network implemented in any suitable manner (i.e., with any suitable network links and any suitable protocol) or otherwise. Additionally, each of the data paths shown in FIG. 1 may be implemented as a plurality of parallel links (e.g., the data path between the client computer 102 and the data storage system 106 may be a number of links all connecting the client computer to the data storage system 106 in parallel). Selecting an individual link of a data path, once a data path type is selected, may be done in any suitable manner. An example of a system that may be used to select a specific link once a path type is selected is the PowerPath system available from EMC Corporation.
When parallel links are employed (e.g., between the client computer and the file system server and/or the storage system), the techniques described above can be employed to select a data path type for handling an I/O operation (i.e., a data path that passes through the file system server or one that does not), and any suitable technique can be employed for selecting one or more specific links of the selected type.